import { request, login } from "../../request/request"
import { baseUrl } from "../../utils/util"
Page({

  /**
   * 页面的初始数据
   */
  data: {
    userStatus: false,
    userinfo: {},
    phone: "+86-18395699359"
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    const userinfo = wx.getStorageSync("userinfo");
    let userStatus = userinfo.avatarUrl ? true : false
    this.setData({
      userStatus,
      userinfo
    });
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 
   * @param {object} e 事件对象
   */
  async getUserInfo (e) {
    // 1. 将用户信息进行解构
    let { userInfo } = e.detail
    // 2. 判断用户拒绝授权
    if (!userInfo.nickName) {
      return
    }
    // 3. 进行登录验证
    const result = await login()
    let { code } = result
    const params = {
      url: `${baseUrl}/login`,
      method: 'post',
      data: {
        code,
      }
    }
    const loginResponse = await request(params)
    let { data, meta } = loginResponse.data
    console.log(loginResponse);
    // 表示授权出现问题
    if (meta.status == 801) {
      wx.showToast({
        title: '用户授权错误,请联系管理员',
        icon: 'none'
      });
      return;
    }

    /**
     * 将数据保存到缓存中，方便其他功能使用
     */
    wx.setStorageSync("userId", data.userId);
    wx.setStorageSync("token", data.token);
    wx.setStorageSync("permissionGroup", data.permissionGroup);

    // 表示该用户未注册
    if (meta.status == 800) {
      // 将数据保存到缓存中，等待注册页面进行使用
      wx.setStorageSync("userinfo", userInfo);
      wx.navigateTo({
        url: '/pages/register/register'
      });
      return;
    }

    // 4. 将数据进行保存
    this.setData({
      userinfo: userInfo,
      userStatus: true
    })
  },

  /**
   * 处理 退出登录 的点击事件
   */
  handleLogout (e) {
    // 1. 再次确认用户是否退出
    wx.showModal({
      title: '推出',
      content: '是否退出 ?',
      success: (res) => {
        // 2. 清除 storage 和 data域 中的缓存数据
        if (res.confirm) {
          this.setData({
            userStatus: false,
            userinfo: {},
          })
          wx.removeStorage({
            key: 'userinfo'
          });
          wx.showToast({
            title: '退出成功',
            icon: 'success',
            duration: 2000
          })
        } else if (res.cancel) {
          return;
        }
      }
    })

  }
})